
const {createAddr,findAddr,updateAddr,removeAddr,setDefaultAddr} = require('../service/addr.service')


class AddrController {

    //添加地址
    async create(ctx){
        //解析参数
        const user_id = ctx.state.user.id
        const {consignee, phone, address} = ctx.request.body
        //操作数据库
        const res= await createAddr({user_id, consignee, phone, address})   
        //返回响应
        ctx.body={
            code:200,
            message:'添加地址成功',
            data:res 
        }
    
    }
    //获取地址列表
    async findAll(ctx){
        //解析参数
        const user_id = ctx.state.user.id
        //操作数据库
        const res= await findAddr(user_id)
        //返回响应
        ctx.body={
            code:200,
            message:'获取地址列表成功',
            data:res
        }
    
    }

    //更新地址
    async update(ctx){
        //解析参数
        const {consignee, phone, address} = ctx.request.body  
        const {id} = ctx.request.params
        //操作数据库
        try {
            const res= await updateAddr(id,{consignee, phone, address})
            //返回响应
            ctx.body={
                code:200,
                message:'更新地址成功',
                data:res
            }
        } catch (error) {
            console.log(error);
        }
       
    }

    //删除地址
    async remove(ctx){
        //解析参数
        const {id} = ctx.request.params
        //操作数据库
        const res= await removeAddr(id)
        //返回响应
        ctx.body={
            code:200,
            message:'删除地址成功',
            data:res
        }
    }

    //设置默认地址
    async setDefault(ctx) {
        //解析参数
        const user_id = ctx.state.user.id
        const { id } = ctx.request.params
        //操作数据库
        try {
            const res = await setDefaultAddr(user_id,id)
            //返回响应
            ctx.body = {
                code: 200,
                message: '设置默认地址成功',
                data: res
            }
        } catch (error) {
            console.log(error);
        }


    }




}


module.exports = new AddrController()